// var flipLights = function(n, presses) {
//     const seen = new Set();
//     for (let i = 0; i < 1 << 4; i++) {
//         const pressArr = new Array(4).fill(0);
//         for (let j = 0; j < 4; j++) {
//             pressArr[j] = (i >> j) & 1;
//         }
//
//         // _ is not defined
//         // const sum = _.sum(pressArr); // 官方解答，本地运行是错误的!!
//         let s;
//         const sum = s.sum(pressArr); // Cannot read properties of undefined (reading 'sum') ???
//         if (sum % 2 === presses % 2 && sum <= presses) {
//             let status = pressArr[0] ^ pressArr[1] ^ pressArr[3];
//             if (n >= 2) {
//                 status |= (pressArr[0] ^ pressArr[1]) << 1;
//             }
//             if (n >= 3) {
//                 status |= (pressArr[0] ^ pressArr[2]) << 2;
//             }
//             if (n >= 4) {
//                 status |= (pressArr[0] ^ pressArr[1] ^ pressArr[3]) << 3;
//             }
//             seen.add(status);
//         }
//     }
//     return seen.size;
// };

/**
 * @param {number} n
 * @param {number} presses
 * @return {number}
 */
var flipLights = function(n, presses) {
    // n -> [1,1,1...]
    // a,b,c,d
    if (presses === 0) return 1;
    if (n === 1) return 2;
    if (n === 2) {
        return presses === 1 ? 3 : 4;
    }
    return presses === 1 ? 4 : presses === 2 ? 7 : 8;
};


// 外部文件夹调用
module.exports = flipLights;
